<?
/* Se asegura que el archivo es incluido por el index */
	defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Objetivo_exe( $this );

	class Objetivo_exe extends Exe
	{
		function Objetivo_exe( &$oModule )
			{
				$this->Exe( $oModule );
			}
		// MODIFICAR_Objetivo
		function update()
			{
				// Convierte a variables los datos del Formulario asociado a la accion
				$oForm = $this->oModule->loadClass( 'Objetivo_frm' );
				extract( $oForm->getFieldArray() );
				// Verifica la Fecha
					$dVencimientoProyecto = $this->oDatabase->getData("SELECT dVencimiento FROM atProyecto WHERE ncProyecto = $ncProyecto" );
					if ( $dVencimientoProyecto != '' &&  $dVencimiento != '' && dateCompare( $dVencimiento, $dVencimientoProyecto ) == 1  )
					{
						addMessage("La fecha de vencimiento debe ser menor a la del proyecto. ");
						return ;
					}
				// Modifica el Registro Objetivo
					$this->oDatabase->update("atObjetivo",
									"cdObjetivo", $cdObjetivo,
									"dVencimiento", $dVencimiento,
									"ncResponsable", $ncResponsable,
									"cDescripcion", $cDescripcion,
									"WHERE",
									"ncProyecto", $ncProyecto ,
									"ncObjetivo", $ncObjetivo );
			}
		// AGREGAR_UNA_Objetivo
		function insert()
			{
				// Convierte a variables los datos del Formulario asociado a la accion
				$oForm = $this->oModule->loadClass( 'Objetivo_frm' );
				extract( $oForm->getFieldArray() );
				// Verifica la Fecha
					$dVencimientoProyecto = $this->oDatabase->getData("SELECT dVencimiento FROM atProyecto WHERE ncProyecto = $ncProyecto" );
					if ( $dVencimientoProyecto != '' &&  $dVencimiento != '' && dateCompare( $dVencimiento, $dVencimientoProyecto ) == 1  )
					{
						addMessage("La fecha de vencimiento debe ser menor a la del proyecto. ");
						return false;
					}

				// Agrega Objetivo
					$ncObjetivo = $this->oDatabase->nextKey("atObjetivo", "ncObjetivo", "ncProyecto=$ncProyecto" );
					$this->oDatabase->insert("atObjetivo",
									"cdObjetivo", $cdObjetivo,
									"dVencimiento", $dVencimiento,
									"ncResponsable", $ncResponsable,
									"cDescripcion", $cDescripcion,
									"dObjetivo", Date("Y-m-d") ,
									"ncProyecto", $ncProyecto ,
									"ncObjetivo", $ncObjetivo );
				$oForm->reset();
			}
		// ELIMINAR_UNA_Objetivo
		function delete()
			{
				$ncProyecto = getParam( 'ncProyecto' );
				$ncObjetivo = getParam( 'ncObjetivo' );

				$nqTareas = $this->oDatabase->getData("SELECT count(*) FROM atTarea WHERE ncObjetivo = $ncObjetivo AND ncProyecto =  $ncProyecto ");
				if ( $nqTareas > 0 )
				{
					addMessage( "No se puede eliminar el objetivo por que tiene tareas" );
					return false;
				}
				if ( $ncObjetivo  && $ncProyecto)
				{
					$this->oDatabase->delete( "atObjetivo", "ncObjetivo", $ncObjetivo , "ncProyecto", $ncProyecto);
				}
			}
	}
?>
